const { DataTypes } = require("sequelize");

module.exports = (sequelize) => {
  const Post = sequelize.define("Post", {
    // 文章标题，不能为空
    title: {
      type: DataTypes.STRING,
      allowNull: false,
    },
    // 文章内容，不能为空
    content: {
      type: DataTypes.TEXT,
      allowNull: false,
    },
    // 作者ID，对应 User 表的主键
    userId: {
      type: DataTypes.INTEGER,
      allowNull: false,
    },
    // 类别ID，对应 Category 表的主键
    categoryId: {
      type: DataTypes.INTEGER, // 确认是否正确定义了 categoryId 字段
      references: {
        model: 'Categories', // 假设你有 Category 模型
        key: 'id',
      },
    },
  });

  Post.associate = (models) => {
    Post.belongsTo(models.User, { as: "author", foreignKey: "userId" });
    Post.belongsTo(models.Category, { foreignKey: "categoryId" });
    Post.hasMany(models.Comment, { foreignKey: "postId" });
    Post.belongsToMany(models.Tag, { through: "PostTag" });
  };

  return Post;
};
